An application function (AF) is an element offering applications that require dynamic policy and charging control. An application function provides a service to the user, in which a packet based service data flow is provided to the user, e.g. the streaming of video and/or audio data packets from a content provider to a subscriber of a mobile communications network. The application function may for example be attached to or part of the 3GPP Policy and Charging (PCC) architecture which is shown in FIG. 1 and is known from 3GPP TS 23.203. The main orchestrator in the PCC architecture is the Policy and Charging Rules Function (PCRF) shown with reference numeral 10 in FIG. 1. A subscriber profile repository, SPR 20, is connected to the PCRF 10 via an Sp interface, the application function 30 communicating with the PCRF via the Rx interface. An online charging system (OCS) 40 is provided and an offline charging system (OFCS) 50. A gateway 60 containing the PCEF (Policy and Charging Enforcement Function) 65 is in communication with the online charging system 40, the offline charging system 50 and the PCRF 10 via the Gy, Gz and Gx interface, respectively, as shown in FIG. 1. A traffic detection function (TDF) 70 is provided and a Bearer Binding and Event Reporting Function (BBERF) 80. Further details about the different functions can be found in the above-mentioned 3GPP TS 23.203. For the present invention, the following interfaces between the entities are of interest.
Rx: Allows the AF to request the PCRF to modify a user's connection parameters since the AF has detected that the user uses a service that would need these detections. The PCRF can also signal in case the connection for a user changes that the AF earlier has requested to be changed.
Gx: Allows the PCRF to configure the PCEF with policy control and charging rules and allows the PCEF to report to the PCRF when new data flows are detected for a user and also to report accumulated usage of the data flows for a user.
Sd: Allows the PCRF to have dynamic control of application detection, compared to the Gx interface where the only detection of predefined applications can be reported by the PCEF. The PCRF instructs the TDF which applications it wants the TDF to detect and the TDF sends notifications when detecting an application.
By implementing an application function, the application function has to be able to detect user services that then require Rx signaling to be made. In general, three main approaches to enable this detection in the application function can be identified.
In a first approach, a user equipment (UE) uses a control signaling to the application function. In this approach, data is sent from the UE that is terminated in informing the application function that a service will be used and which will trigger the AF to do Rx signaling. This can be considered as control signaling from the UE, although from a 3GPP perspective, the control signaling will go over the data plane. Still, this data is control signaling as it is not part of the real packet based service data flow, such as the data sent to retrieve a video.
The second approach is a communication between the application function and the target host, i.e. the content provider. In this approach, the user service is detected in the target host/content provider of the service which then informs the application function that the service has started or is about to start.
A third approach is that the application function detects a user service with a packet based service data flow by packet inspection. In this approach, the application function is located between the UE and the content provider or target host of the service and can detect that the service started using packet inspection.
The last approach has the advantage that it does not require awareness of the application function in the user equipment or the target host.
One problem with the application function in the 3GPP architecture is that the application function often belongs to a different company, organization or department compared to the mobile communications network. For this reason, the Rx interface in the 3GPP architecture between the application function and the PCRF shown in FIG. 1 has limited functionality. No other interfaces between the AF and the network nodes are standardized nor generally expected due to the previous reason. Furthermore, for the same reason it is often not possible to use customization, personalization or adaptation information available in the network node to adjust the application function's behavior to the subscriber profile or the network conditions. To overcome this problem, extensive functionality is needed in the application function for customization, personalization and adaptation needs to be implemented or functionality limitations are needed.
As mentioned above, the third approach is based on the fact that the application function detects the service through packet inspection. The packet inspection functionality may reside within the application function or may be located in another node in a mobile communications network. Even if the packet inspection is located within the application function, the packet inspection implementation in the application function may be running on a separate hardware or may be a distinct piece of software that has already been implemented and used in other products. This is based on the fact that there are multiple other users of packet inspection than for the use in the application function and the packet inspection functionality is available as commercial off-the-shelf hardware or software. In the PCC architecture, packet inspection functionality is part of the PCEF and TDF entities and the Gx and Sd interfaces are used to give application events or report events of detected packets and also to configure the packet inspection entity what packets to send the application events to.
When implementing the application function, according to the third approach using packet inspection, extensive logic is needed in the application function in order to keep track of users and the users' data flows, which policies are used for which users etc. When commercial off-the-shelf software and/or hardware is used for packet inspection, the application function also needs to implement interfaces for communicating with the packet inspection entity. In particular, if the application function used packet inspection functionality usually serving as PCEF or TDF in a mobile communications network, the AF would need to implement the Gx and/or Sd interfaces.
A solution where the application function could utilize already available functionality, both to support the Gx and/or Sd interfaces and the extensive logic needed to keep track of users and users' data flows would reduce the development costs for the application function.
Accordingly, a need exists to customize, personalize or adapt the application function behavior on a per session basis or per subscriber basis. Furthermore, a possible solution should not affect the mobile communications network PCRF.